package com.zhongwang.business.module.cost.repository;

import com.zhongwang.business.module.cost.model.CosDetail;
import com.zhongwang.business.module.cost.model.CosSheet;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

@Repository
public interface CosDetailRepository {
    /**
     * 执行添加
     * @param model
     * @return
     */
    int save(CosDetail model);


    /**
     * 按 主单ID 查询成本明细
     *
     * @param cosSheetId
     * @return
     */
    List<CosDetail> findCosDetailByCosSheetIdAndDataType(@Param("cosSheetId") Integer cosSheetId, @Param("dataType") String dataType);

    /**
     * 按主单ID 删除成本明细
     *
     * @param cosSheet
     * @return
     */
    int delDsnCostDetailByCosSheetId(CosSheet cosSheet);

    /**
     * 根据条件取得主单ID集合
     *
     * @param cosSheet
     * @return
     */
    List<Integer> findCosSheetIdByQuery(CosSheet cosSheet);

    /**
     * 更改成本主单状态（提交和驳回时使用）
     *
     * @param status
     * @return
     */
    int updateCosSheetStatusSubmitOrRejectById(@Param("id") Integer id, @Param("rejectReason") String rejectReason, @Param("status") Integer status);

    /**
     * 更改成本主单状态（审核）
     * @return
     */
//    int updateCosSheetStatusCheckById(@Param("ids") String ids, @Param("status") Integer status
//            , @Param("verifyCode") String verifyCode, @Param("verifyName") String verifyName, @Param("verifyTime") Date verifyTime,@Param("verifyId") int verifyId );
    int updateCosSheetStatusCheckById(CosSheet cosSheet);

    /**
     * 成本信息输出查询
     * @param cosSheet
     * @return
     */
    List<CosSheet> queryCossheet(CosSheet cosSheet);
}
